package com.canaan.business.service.inOutStock;

import java.util.List;
import com.canaan.business.domain.inOutStock.SplitBill;
import com.canaan.business.domain.vo.SplitBillDetailVo;

/**
 * 分捡单Service接口
 * 
 * @author canaan
 * @date 2025-03-29
 */
public interface ISplitBillService {
    /**
     * 查询分捡单
     *
     * @param id 分捡单主键
     * @return 分捡单
     */
    SplitBill selectSplitBillById(Long id);

    /**
     * 查询分捡单列表
     * 
     * @param splitBill 分捡单
     * @return 分捡单集合
     */
    List<SplitBill> selectSplitBillList(SplitBill splitBill);

    /**
     * 新增分捡单
     *
     * @param splitBill 分捡单
     * @return 结果
     */
    int insertSplitBill(SplitBill splitBill);

    /**
     * 批量新增分捡单
     *
     * @param splitBillList 分捡单列表
     * @return 结果
     */
    int batchInsertSplitBill(List<SplitBill> splitBillList);

    /**
     * 修改分捡单
     *
     * @param splitBill 分捡单
     * @return 结果
     */
    int updateSplitBill(SplitBill splitBill);

    /**
     * 批量修改分捡单
     *
     * @param splitBillList 分捡单列表
     * @return 结果
     */
    int batchUpdateSplitBill(List<SplitBill> splitBillList);

    /**
     * 批量删除分捡单
     * 
     * @param ids 需要删除的分捡单主键集合
     * @return 结果
     */
    int deleteSplitBillByIds(Long[] ids);

    /**
     * 删除分捡单信息
     * 
     * @param id 分捡单主键
     * @return 结果
     */
    int deleteSplitBillById(Long id);

    /**
     * 查询分捡单
     *
     * @param no 编号
     * @return 分捡单
     */
    SplitBill selectSplitBillByNo(String no);

    /**
     * 批量删除分捡单
     *
     * @param nos 需要删除的编号集合
     * @return 结果
     */
    int deleteSplitBillByNos(String[] nos);

    /**
     * 删除分捡单信息
     *
     * @param no 编号
     * @return 结果
     */
    int deleteSplitBillByNo(String no);
    /**
     * 根据托盘查询分拣数据
     * @param trayNo 托盘号
     * @return
     */
    List<SplitBillDetailVo> selectSplitBillDetailByTrayNo(String trayNo);
}
